"""
!/usr/bin/env python
-*- coding: utf-8 -*-
@Author  : MarkJia
@Site    : 
@File    : 15、类型提示.py
"""


def greeting(name):
    print('hello ' + name)


# 结果：hello python
greeting('python')


# 类型提示：1、增加代码可读性  2、ide代码提示  3、静态代码检查

# 1、为参数和返回值指定类型
# 定义(name:str)参数类型提示         -> str定义返回类型
def getting(name: str, age: int) -> str:
    print(f'年龄是{age}')
    return 'Hello ' + name.split(',')[1]


print(getting('python,java', 18))  # 年龄是18     Hello java

# 2、为类型起别名
from typing import List

# 为类型起别名
Vector = List[float]


def scale(a: float, b: Vector) -> Vector:
    return [a * num for num in b]


print(scale(1.1, [2.2, -1.3, 3.8]))


# 自定义类型
class Student:
    name: str
    age: int

def get_stu(name: str) -> Student:
    return Student()

# get_stu("harry").name # 有相应的提示


# 3、静态代码检查
# pip install mypy
from typing import List

a: List[int] = []
a = [1, 2, 3]
a = [1, 2, "11"]

# 通过 mypy 模块名 来静态检查



